package com.songshuai.sales.tool.dao.tool;

import com.songshuai.sales.tool.dto.response.soptype.SopTypeDto;
import com.songshuai.sales.tool.model.SopType;
import com.songshuai.webapi.baseapi.pojo.BaseParmDto;

import java.util.List;
import java.util.Map;

/**
 * @Author: hst
 * @Date: 2019-03-15 11:10:15
 */
public interface SopTypeMapper {

    /**
     * 根据主键查询单一记录
     *
     * @param id
     * @return SopType
     */
    SopType selectByPrimaryKey(String id);

    /**
     * 根据条件查询单条记录
     *
     * @param entity
     * @return SopType
     */
    SopType selectByEntity(SopType entity);

    /**
     * 根据条件查询ID
     *
     * @param entity
     * @return String
     */
    String selectById(SopType entity);

    /**
     * 插入单条记录（全字段）
     *
     * @param entity
     * @return int
     */
    int insert(SopType entity);

    /**
     * 插入单条记录（字段为空则不添加）
     * @param entity
     * @return
     */
    int insertSelective(SopType entity);

    /**
     * 根据主键修改
     *
     * @param entity
     * @return int
     */
    int updateByPrimaryKey(SopType entity);

    /**
     * 根据主键删除单条记录
     *
     * @param id
     */
    void deleteByPrimaryKey(String id);


    /**
     * 根据某些条件删除
     *
     * @param entity
     * @return int
     */
    int deleteByEntity(SopType entity);

    /**
     * 基础服务使用
     * 查询分类集合
     *
     * @return List<SopTypeDto>
     */
    List<SopTypeDto> querySopTypeList(BaseParmDto<String> param);

    /**
     * 校验分类名称是否重复
     *
     * @param map
     */
    Integer querySopTypeNumByName(Map map);

    /**
     * 查询现有的最大排序值
     *
     * @param parentId
     * @return
     */
    int queryMaxSort(String parentId);

    /**
     * 查询sop分类
     * @param map
     * @return
     */
    SopType sopTypeSort(Map map);

    /**
     * 更新sop分类显示状态
     * @param map
     */
    void updateShowStatus(Map map);

    /**
     * 更新sop分类删除状态
     * @param map
     */
    void updateDeleteStatus(Map map);
}